package com.ruoyi.training.service;

import java.util.List;
import com.ruoyi.training.domain.CheckinRecord;
import com.ruoyi.training.vo.CheckinDetailsResult;

/**
 * 班级签到记录（学员的实际签到信息）Service接口
 * 
 * @author WorrilessGo
 * @date 2025-09-24
 */
public interface ICheckinRecordService 
{
    /**
     * 查询班级签到记录（学员的实际签到信息）
     * 
     * @param checkinRecordId 班级签到记录（学员的实际签到信息）主键
     * @return 班级签到记录（学员的实际签到信息）
     */
    public CheckinRecord selectCheckinRecordByCheckinRecordId(String checkinRecordId);

    /**
     * 查询班级签到记录（学员的实际签到信息）列表
     * 
     * @param checkinRecord 班级签到记录（学员的实际签到信息）
     * @return 班级签到记录（学员的实际签到信息）集合
     */
    public List<CheckinRecord> selectCheckinRecordList(CheckinRecord checkinRecord);

    /**
     * 新增班级签到记录（学员的实际签到信息）
     * 
     * @param checkinRecord 班级签到记录（学员的实际签到信息）
     * @return 结果
     */
    public int insertCheckinRecord(CheckinRecord checkinRecord);

    /**
     * 修改班级签到记录（学员的实际签到信息）
     * 
     * @param checkinRecord 班级签到记录（学员的实际签到信息）
     * @return 结果
     */
    public int updateCheckinRecord(CheckinRecord checkinRecord);

    /**
     * 批量删除班级签到记录（学员的实际签到信息）
     * 
     * @param checkinRecordIds 需要删除的班级签到记录（学员的实际签到信息）主键集合
     * @return 结果
     */
    public int deleteCheckinRecordByCheckinRecordIds(String[] checkinRecordIds);

    /**
     * 删除班级签到记录（学员的实际签到信息）信息
     * 
     * @param checkinRecordId 班级签到记录（学员的实际签到信息）主键
     * @return 结果
     */
    public int deleteCheckinRecordByCheckinRecordId(String checkinRecordId);

    /**
     * 批量修改签到状态
     * lqx
     */
    public int batchUpdate(List<CheckinDetailsResult> checkinDetailsResultList);

    /**
     * 新增班级签到记录备注
     * lqx
     */
    public int addCheckinRemark(CheckinDetailsResult checkinDetailsResult);
}
